<?php

/** 
 * Interfaces library about Application Job
 * 
 * @author polux
 * @package php-script_auto
 * @subpackage interfaces
 * 
 */

/**
 * ********************************************
 * IRunnableJob interface
 * ********************************************
 *  Interface defining methods for job have 
 *  to be run with a main process to execute
 * ********************************************
 * @author polux
 *
 */
interface IRunnableJob {
	
	/**
	 * Main treatment of Job
	 * 
	 * @return boolean
	 */
	function RunJob();
	
}

/**
 * ********************************************
 * IPreProcessedJob interface
 * ********************************************
 *  Interface defining methods for job have
 *  to be preprocessed before execution
 * ********************************************
 * @author polux
 *
 */
interface IPreProcessedJob {

	/**
	 * Main treatment of Job
	 *
	 * @return boolean
	 */
	function PreProcessJob();

}

/**
 * ********************************************
 * IPostProcessedJob interface
 * ********************************************
 *  Interface defining methods for job have
 *  to be postprocessed after execution
 * ********************************************
 * @author polux
 *
 */
interface IPostProcessedJob {

	/**
	 * Main treatment of Job
	 *
	 * @return boolean
	 */
	function PostProcessJob();

}

interface IExceptionCritical
{
	function CriticalMessage();
}

/**
 * ILoggableItem - Interface for loggable item
 * 
 * @author polux
 *
 */
interface ILoggableItem{
// 	/**
// 	 * setLogObject - Refers log object
// 	 * 
// 	 * @param 	ALog 	$p_o_logObj		Related Log Object
// 	 * @static
// 	 */
// 	static function setLogObject(ALog $p_o_logObj);
// 	/**
// 	 * getLogObject - return related log object
// 	 * 
// 	 * @static
// 	 * @return ALog 
// 	 */
// 	static function getLogObject();	
	
	function addLogEvent($p_s_msg);
	
	function addAnException(Exception $p_o_ex);
	function getInternalID();
	function getTimestamp();
	function setTimestamp();
}




?>